<?php
header('Content-type:text/html;charset=utf-8');
// 1、取数组的键名 键值 合并  关联  

$s = array(

	'name'=>'a',
	'age'=>'29'

	);

$a = array(

	'name'=>'dij',
	'age'=>'35'


	);

$e = array(

	'sex'=>'boy',
	'jigaun'=>'jiangxi'


	);

//取数组键名
$d = array_keys($s);
print_r($d).'<br/>';

// 取数组的所有值
$c = array_values($s);
print_r($c);

//索引数组就追回合并   关联数组就覆盖合并
$d = array_merge($e,$a);
print_r($d);



// 2、数组键名大小的改变

$arr = array(

	'host1'=>array(

			'URL'=>'baidu.com',
			'AGE'=>'24'

		),
	'host2'=>array(

			'URL'=>'yahoo.com.cn',
			'SEX'=>'nan'

		)

	);

// 转换的是第一层的键名的大小  array_change_key_case — 返回字符串键名全为小写或大写的数组 
//第一个参数 是需要改变大小的键值或数组  第二个参数是 ：变大为 1  变小为 0
$e = array_change_key_case($arr,1);

print_r($e);


// 遍历数组里面的所有的键名和键值  
foreach ($arr as $k => $v) {
	//第一个参数 是需要改变大小的键值或数组  第二个参数是 ：变大为 1  变小为 0
	$arr[$k]=array_change_key_case($v,0);

}

print_r($arr);
echo '<hr/>';



// 3、数组键名大小的转换
//---------------------------------------------------------------------------------------------------->>>
$date = array(

	'web'=>'sina.com',
	'host'=>array(

		'local'=>'yahoo.com',

		)
	);

// 建立一个取键名大小的函数    第二个参数是 ：变大为 1  变小为 0
function array_change_key_case_d($rrr,$type=0)
{
	//为了不改变传进来的值的键名 新建一个空数组 
	$date=array();
//------------------------------------------------------------------------------------------------------
	// 函数默认的键名是小写的即是false  然后用三元表达式判断传进来的数组是否是false
	//如果传进来的是0 即是false  把strtolower赋值给 $func    如果传进来是1 就把strtoupper赋值给$func
	$func = $type?'strtoupper':'strtolower';
	// 1、遍历数组的键名和键值
//------------------------------------------------------------------------------------------------------
	foreach ($rrr as $key=> $value) {
	// 2、判断是否是数组
	
	$key = $func($key);// 经过上面的判断后  看看是需要改变大写还是小写

	// 判断是否是一个数组 如果是一个数组 那么就改变数组里面的键名的大小 如果传的不是数组那么就按原来的样式输出
	$date[$key]=is_array($value)?array_change_key_case_d($value,$type):$value;

	}

	return $date;
}
//------------------------------------------------------------------------------------------------------
// 传入数组 
$w = array_change_key_case_d($date,1);

print_r($w);

//4、将数组转换成字符串类型

$n = array(

	'1',
	'2',
	'3'

	);
// 结构 相当于打印的结构
$m = var_export($n,true);
print_r($m);


//5、正则表达式

$str = 'ab\c5';
// ？？
$preg = '/\\\d/';
//正则匹配
$state = preg_match($preg, $str);

var_dump($state);



//原子的字符匹配一个就行了

$str = '1238923823';

// ^表示非  除了它之外的匹配
$s = preg_match('/[^1238923823]/', $str);

var_dump($s);

$s = preg_match('/[sdkjdskf28939823]/',$str);

var_dump($s);


// . 的介绍  除换行符外的任意的字符
$s = preg_match('/./','sdfsdf');

var_dump($s);



$str = "abc";
$s = preg_match('/bas/',$str);

var_dump($s);


// 原子组

$str = '后盾官网www.houdunwang.com后盾论坛http://bbs.houdunwang.com我在后盾的网名叫houdun';
				// houdunwangwanghoudun              houdunwangwanghoudun
//每一个扩号包裹的为一个原子组  以\1形式调用 

// i 不区分大小写的匹配  
//s 将字符串视为单行  换行符 当普通字符看待   '.' 匹配任意的字符  e 将匹配的字符串 作为表达式使用  

$preg = "/(houdun)(wang)/is";
// preg_replace — 执行一个正则表达式的搜索和替换 

echo preg_replace($preg, "<b>\\1</b><i>\\2</i><i>\\2</i><i>\\1</i>", $str);
						// houdun     wang      wang      houdun



$s="
	baidu.com 
	<a href='baidu.com'>baidu.com</a>
";
echo str_replace('baidu','sina',$s);



// 管理配置项

// function con($name=null,$value=null){

// 	判断传进来的$name 是否有
// 	if($name){

// 	}



// }


?>